import os

from quantification.data_handler.DataHandler import DataHandler

import pandas as pd


class CSVDataHandler(DataHandler):
    """
    HistoricCSVDataHandler类用来读取请求的代码的CSV文件，这些CSV文件
    存储在磁盘上，提供了一种类似于实际交易的场景的”最近数据“一种概念。
    """

    def __init__(self, stock_code):
        # 股票代码
        self.stock_code = stock_code

        self.stock_data = None

        self._open_csv_file()

    def _open_csv_file(self):
        """
        加载数据
        C:\\workspace\\python\\stock-flask\\service\\requests\\datas\\
        """

        self.stock_data = pd.read_csv(
            os.path.abspath(os.path.join(os.getcwd(), "../") + '\\service\\requests\\datas\\%s.csv' % self.stock_code),
            index_col='date', parse_dates=True,
            usecols=['date', 'open', 'high', 'low', 'close', 'volume'])

        self.stock_data["returns"] = self.stock_data["close"].pct_change()

    def load_data(self):
        """
        从数据集返回最新的数据条目
        """
        return self.stock_data

    def store_data(self, overwrite=True):
        pass
